/**
 * Classe Tabela
 * Nesta classe contém os métodos utilizados para a manipulação
 * dos scores dos epítopos
 */
package epibot.BancoDeDados;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Rafael Tosta
 */
public class TabelaSites extends SQLiteEpibot {

    private Statement stm = null;

    public TabelaSites() {
        stm = getBD();
    }

    /**
     * Insere os valores na tabela
     * 
     * @param nome Nome do site
     * @param link Link do site na web
     * @param stm Conexão com o banco de dados
     */
    public void insert(String nome, String link) {
        try {
            String sql = "insert into sites (nome,link)"
                    + "values ('" + nome + "','" + link + "');";
            stm.executeUpdate(sql);
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        }
    }

    /** 
     * Retorna o id do site e o nome de todos os sites da tabela separado por virgula
     * (id,nome)
     * 
     * @param stm Conexão com o banco de dados
     * @return Lista com os identificadores e os nomes
     */
    public ArrayList<String> selectIDNome() {
        ArrayList<String> lista = new ArrayList<String>();
        String d;
        try {
            ResultSet executeQuery = stm.executeQuery("SELECT id_site,nome FROM sites");
            while (executeQuery.next()) {
                lista.add(executeQuery.getString("id_site")
                        + "," + executeQuery.getString("nome"));
            }
            executeQuery.close();
        } catch (SQLException ex) {
            Logger.getLogger(TabelaSites.class.getName()).log(Level.SEVERE, null, ex);
        }
        return lista;
    }

    /**
     * Obtem o id do site conforme o nome do site
     * 
     * @param nome Nome do site
     * @param stm Conexão com o banco de dados
     * @return Identificador do site
     */
    public String getIdSite(String nome) {
        String idSite = "null";
        try {
            ResultSet executeQuery = stm.executeQuery("SELECT id_site FROM sites where(nome = '" + nome + "');");

            while (executeQuery.next()) {
                idSite = executeQuery.getString("id_site");
            }
            executeQuery.close();
        } catch (SQLException ex) {
            Logger.getLogger(TabelaSites.class.getName()).log(Level.SEVERE, null, ex);
        }
        return idSite;
    }

    /** 
     * Ao informar o identificador do site retorna o nome do site
     *
     * @param idSite Identificador do site
     * @param stm Conexão com o banco de dados
     * @return Nome do site
     */
    public String getNome(String idSite) {
        String nome = "null";
        try {
            ResultSet executeQuery = stm.executeQuery("SELECT nome FROM sites where(id_site = '" + idSite + "');");

            while (executeQuery.next()) {
                nome = executeQuery.getString("nome");
            }
            executeQuery.close();
        } catch (SQLException ex) {
            Logger.getLogger(TabelaSites.class.getName()).log(Level.SEVERE, null, ex);
        }
        return nome;
    }
}
